home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 February / EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso / enigma / earcd / comm / comm2 / ctdcs701.lha / citadel.doc < prev    next >
Text File  |  1995-03-14  |  66KB  |  1,414 lines

  1. Document Citadel.Guide 
  2. @REMARK : Citadel.guide 1.0 (27.11.94) 
  3. 1. MAIN        
  4.  
  5.       The documentation  contained  is  a  collection  of  information
  6.  based  on  the  original  Citadel  86  documentation by Hue, JR.  The
  7.  mistakes are mine.  
  8.  
  9.       It is  pretty much a complete reference manual and every attempt
  10.  is  being  made  to  make  this  a  complete  manual with all details
  11.  explained  so  that  even the most novice of users can understand how
  12.  to  setup  and  run  a bbs.  The most important thing is to read this
  13.  documentation and give it a try! 
  14. 2. Citadel History       
  15.  
  16.       What is  Citadel?  Citadel  is  a Freeware project.  The source,
  17.  executables  and  all  the documentation are available for no cost to
  18.  you.  If you paid for this, someone is ripping you off.  
  19.  
  20.       Citadel was  written in mid-December 1981 by CrT.  Miraculously,
  21.  it  ran  three  days  unattended  over  New  Year's,  collecting some
  22.  remarkably  favorable  reactions.   During  the months that it ran at
  23.  633-3282  (ODD-DATA),  Citadel  became one of the more popular BBs in
  24.  town,  and  there  was  some  disappointment  when a hardware failure
  25.  forced  the  system down in February of 1982.  But in January CrT had
  26.  published  the  source  code  in  BDS  C,  putting  it  in the public
  27.  domain.  
  28.  
  29.       David Mitchell  brought  up  the next incarnation of the Citadel
  30.  program  in  April  of  1982, running on hardware provided by Richard
  31.  Knox.   Called  the  Island  Communication  System,  it is located on
  32.  Bainbridge  Island  in  Puget  Sound.  ICS has about 30 regular users
  33.  and  about  120  log  entries.   Newcomers find it easy to learn, and
  34.  often  leave  messages praising it.  Some of the system's daily users
  35.  are in Boston.  
  36.  
  37.       Citadel is   descended   from   DandD.pas,   an  adventure  game
  38.  editor/driver.   It  is  arranged as a series of rooms, starting with
  39.  the  LOBBY.   In  each  room  the user can read existing messages and
  40.  leave  more.   The  system  was  brought  up  with only one room, the
  41.  LOBBY.   Additional  rooms were created by the users, with room names
  42.  appropriate to the topics covered.  
  43.  
  44.       Environment:  Citadel  has  had  a checkered past.  It first ran
  45.  on  a  64K  Heath  H89  with Magnolia CP/M, Hayes Smartmodem (plus an
  46.  acoustic on another port) and BDS C V1.32.  
  47.  
  48.       As time  went  on,  Citadel  was ported to the Amiga, Atari, and
  49.  even  the  MAC.   Citadel runs on many platforms and since the source
  50.  is available will probably run on most future ones too.  
  51. 3. What is Citadel-68K      
  52.  
  53.       Citadel-68K(also know  as  Amiga  Citadel)  is a single user BBS
  54.  program.   It is a direct decendant of the 3.42 Citadel 86 by Hue, JR
  55.  in Minnesota.  
  56.  
  57.       Citadel comes  in  two  flavors, a 68000 based version that will
  58.  run  on  any  Amiga and an optimized 68030 based.  Citadel is able to
  59.  run  on any Amiga model and under any OS from 1.2 to the latest.  The
  60.  CTDL(main  BBS  executable) and CONFG(BBS configuration tool) come in
  61.  the  two  forms,  the  utilities come in the 68000 version only.  The
  62.  Amiga  Citadel  is  a  direct port from the IBM Citadel 86 by Hue Jr.
  63.  It  originally was done by Jay Johnston, who did not have the time to
  64.  continue  it  so  I, Tony Preston now maintain it.   I don't have the
  65.  time either, but I try...  
  66. 3.1. Support Systems       
  67.  
  68.       Probably the  hardest  part  of  running  a  Citadel  is getting
  69.  started.   Citadel is not the most common of BBS programs even though
  70.  it is free.  
  71.  
  72.       You should  be  able  to  read  this  document  and  setup  your
  73.  configuration  file,  run  `CONFG'  and  then startup the BBS with no
  74.  problems.   Since  this rarely happens and having a helping hand from
  75.  someone  that  has  already  done  what you are trying to do can make
  76.  things  easier,  you  might want to try one of these three places for
  77.  help and information.  
  78.  
  79.       The first  is  The  Amiga  Zone,  my  BBS(609-953-8159).   It is
  80.  available  24  hours  and is where you will find the most support and
  81.  help.   I  will  often  chat with people that call for help and alway
  82.  try  to  answer  mail messages promptly.  Since calling long distance
  83.  may  not  be  an option for you, check around in your area and see if
  84.  you  can  find  a local Citadel where you can take major advantage of
  85.  the  networking  features  built into Citadel!  The `C86Net' contains
  86.  several  support  rooms where you can post your questions and usually
  87.  get  quick  answers.  These rooms are "Citadel 68K" and "Sysop Only".
  88.  If  your  local sysop will let you have some Long Distance credit you
  89.  can  send  me  domain  mail at "tony preston@The Amiga Zone.NJ".  You
  90.  will  learn  more  about  domain mail later.  There are many Citadels
  91.  active  on  the network so you might check the `BBS List' included in
  92.  this  document  to see if one is local to you.  finally, you can send
  93.  me  mail  via   Internet.  I will answer the mail quickly monday thru
  94.  friday.   Anything  sent over the weekend will wait till monday.  you
  95.  can       reach       me       at      "apreston@isd.csc.com"      or
  96.  "tony-preston@cup.portal.com".  
  97. 3.2. Hardware required       
  98.  
  99.       The minimum  configuration  for `Citadel' is a 512K Amiga with 2
  100.  floppies.   This will allow you to run the BBS, but probably not much
  101.  more.   There  are  some people that have run Citadel on such a small
  102.  system.   Most either expand their system or just quit running it.  1
  103.  MB  of memory and a hard drive is really the practical limit.  I have
  104.  created  and  ran  a  test  bbs  on an A500 with 1 MB of memory and 2
  105.  floppies.   I  would recommend that you have 2 MBs and as a minimum a
  106.  20 MB HD for the BBS.  
  107. 3.3. Requirements        
  108.  
  109.       Citadel will  run  on  any  Amiga  Model.   There are some minor
  110.  problems  with running CONFG and fast memory on A3000s and A4000, but
  111.  the  work  around  is  simply  to run NOFastMem before running CONFG.
  112.  These  may  be fixed at any time, but since I do not have an A3000 or
  113.  A4000, I can't look for the problem.  
  114.  
  115.       Citadel does  not need any external support software to run.  It
  116.  relies  on  the Operating System for 100% of the normal functions and
  117.  is compatible with 1.2 through to the latest OS.  
  118.  
  119.       Citadel does  not use alot of stack space, but will require that
  120.  you  have your stack set to 8K or larger.  8K is more than enough for
  121.  even  the  largest  and most complex Citadel.  Citadel will make sure
  122.  you  have  at  least  an  8K  stack  or  it will quit with a `Citadel
  123.  Error'.  
  124.  
  125.       It is  important  to note is that you really should plan on a 24
  126.  hour  BBs, with a dedicated phone line.  A BBS that is available from
  127.  11pm  to  6am  is not going to be very popular.  I would suggest that
  128.  you  do  not even consider networking unless your BBS is on a regular
  129.  schedule.  
  130. 3.4. Citadel Error       
  131.  
  132.       Citadel is  a  complex  system  of  functions.   In  any complex
  133.  system,  things  go  wrong.  Citadel attempts to validate most things
  134.  when it starts up.  
  135.  
  136.       Once you  have the BBS up and running, you still may run into an
  137.  occasional  problem.   The first thing to do is to collect sufficient
  138.  information  on what exactly is going on.  Many times, if you look at
  139.  the data you might be able to solve the problem youself! 
  140.  
  141.       In general,  if  you  get an error and this information does not
  142.  tell  you  how to correct it, collect as much information as possible
  143.  and  report  what  happended  either directly to me or in the Citadel
  144.  68k  room.   The first thing to look for is a file called `debug.sys'
  145.  or  `crash.sys'.   These  files  should  appear  in either your audit
  146.  area,  the  home  area,  or  the  location you started up Citadel.  I
  147.  usually  will  want the information in these files(even if it is just
  148.  a  cryptic  one  line  message  like  "dependant variables mismatch",
  149.  sometimes  it  tells  me  exactly  where the problem is).  The second
  150.  thing  I  will  tell  you  to  do is turn on debug, Here is a general
  151.  method I end up telling people: 
  152.  
  153.            1) go  into  the Sysop menu, turn on debug "D" option.  You
  154.       can also do this by typing ^D in the console window.  
  155.  
  156.            2) Shut down your Citadel, "X" option.  
  157.  
  158.            3) delete  debug.sys  in  the  audit  area(or save it if it
  159.       contains  info  I  might  need.  At the least, edit the file and
  160.       add  some  markers  (like  two lines of asterisks) at the end of
  161.       the file.  
  162.  
  163.            4) Bring  up  Citadel and attempt to reproduce the problem.
  164.       If  you  cannot  do it locally, you might even ask a remote user
  165.       to  do  it  for  you.  leave debug on.  Note:  If you run CONFG,
  166.       debug  is  automatically  turned  off, repeat the above steps to
  167.       turn it on again.  
  168.  
  169.            5) archive  all  the  information(using something like lha)
  170.       and  arrange  to get the information to me.  I may call your BBS
  171.       to  download  the  file so make some arrangements in Citadel 68K
  172.       so I know where it is.  
  173.  
  174.       The above  may  generate  alot of output.  Much of the output is
  175.  cryptic  and may not seem like anything understandable.  It is mostly
  176.  internal data and is useful to me.  
  177.  
  178.       From time   to  time,  other  errors  may  appear  when  you  do
  179.  something  that  you  really  should not do(like power down the modem
  180.  and then power it up).  These will generate errors like: 
  181.  
  182.            Error:  [1]IOError = nnnn 
  183.  
  184.            Error:  [2]IOError = nnnn 
  185.  
  186.                 Reason:  nnnn  is a result code returned from a serial
  187.            port  i/o,  usually  a  dropped carrier(small timing window
  188.            for  a  race  condition  could  cause  this).  The error is
  189.            handled  for  99%  of  the  cases  in a way that will cause
  190.            Citadel  to  recover  and  reset.   [1] is the case where I
  191.            check  to see what is in the serial port buffer, and [2] is
  192.            when the actual read is done.  
  193.  
  194.            Error:   Startup Error Code nn 
  195.  
  196.                 Reason:  something    went    wrong    during   system
  197.            initialization. The reasons are: 
  198.  
  199.                      1 -  unable  to  open intuition.library, you must
  200.                 be 1.2 or greater to run Citadel.  
  201.  
  202.                      2 -  unable  to open graphics.library, same as 1.
  203.                 This  error also used to mean that the req.library was
  204.                 not  in  the  libs:  directory.   This  is no longer a
  205.                 requirement.    Citadel   does   not   depend  on  the
  206.                 req.library(versions 3.42.P15 or later anyway).  
  207.  
  208.                      3 -  Insufficient  Stack  space, Citadel versions
  209.                 3.42.E19  and  earlier  required  a  large stack, much
  210.                 larger  than  needed  (50K).   Versions  3.42.P35  and
  211.                 later  will  require  a  8K  stack  or less(I am still
  212.                 adjusting  the  values  down).  Citadel still requires
  213.                 the larger limit just to be cautious.  
  214.  
  215.                      11 -  Console  Open Error.  Catch all for console
  216.                 window  errors If you are using #WBSCREEN, try without
  217.                 it.  
  218.  
  219.                      25 -  Open  Serial  Port  Failed,  Well,  Citadel
  220.                 could  not get to the serial port(maybe something else
  221.                 has  it  open.   Note:  You will not get this error if
  222.                 you  run  Citadel while it is already running since it
  223.                 opens the serial port in a shared mode.  
  224.  
  225.                      31 -   Could   not   create   a  Port  for  timer
  226.                 communications,  Low  memory?   Trashed system tables?
  227.                 Try  a  re-boot.   This  is  one of those, "you should
  228.                 never  get  here".   If  you  bug me with this type of
  229.                 problem,   you   had   better   have   a  full  system
  230.                 configuration and alot of details.  
  231.  
  232.                      32 - could not create an I/O request. See 31.  
  233.  
  234.                      33 - Open timer.device failed.  See 31.  
  235.  
  236.                 Note:  In  the  serial  port  open errors, and in most
  237.            cases  with  debug  turned  on,  you  will get a text error
  238.            message of the form: 
  239.  
  240.                 1:    Date - Dos Error:nnnn 
  241.  
  242.                 2:    (some text as to what happened) 
  243.  
  244.                 3:    (some  text as to what happened) <-- you may get
  245.            only one line.  
  246.  
  247.                 4:    Reason: <error text> 
  248.  
  249.                 5:    Current Directory 
  250.  
  251.  
  252.                 Line 1:  is the internal error code(less than 100), or
  253.            the Dos error code.  
  254.  
  255.                 Lines 2-3:  will  either  be  a  command(like  in  the
  256.            external  protocols)  and  a text line, or just one line of
  257.            text.    External   commands  will  display  the  text  and
  258.            command, most errors do not have an external command.  
  259.  
  260.                 4: is  the  reason  the  error  occured(from  the Exec
  261.            routine Fault).  
  262.  
  263.                 5: is  the  current  directory.   This is important if
  264.            you  are  trying  to  setup  a  door for example and in the
  265.            wrong directory.  
  266.  
  267.                 If the  problem  is  reproducable, do it several times
  268.            and   record  all  possible  information,  especially  your
  269.            system  configuration!  If it happens just once and you can
  270.            not  reproduce  it,  then  still record what you can, check
  271.            things like memory in use, what is running.  
  272.  
  273.            Note:  If  you  have  a problem that seems to happen often,
  274.       realize  that  I  rarely  have a crash.  Pleae check to see that
  275.       something  else is not causing the problem.  Remove commodities,
  276.       other  programs  and  see  if  you can cause the problem without
  277.       that  super-duper-whiz-bang  mouse  accelerator/screen  blanker!
  278.       It  probably  ain't  Citadel!   If  you  are  running  on a 512K
  279.       system,  you  may  just  be  running out of memory.  While every
  280.       attempt  has  been  made  to  exit  in  a  friendly  manner,  no
  281.       guarentees...  
  282. 3.5. Limits        
  283.  For  the  most  part,`Citadel'  only  has  your  imagination  as  the
  284.  limits...   In  practicality, there are some real physical limits you
  285.  will  have.  Each of these limits can be difficult to adjust later so
  286.  some  planning  is  important at this point.  You must set a limit on
  287.  the  number  of users (`#LOGSIZE'), rooms (`#MAXROOMS'), and messages
  288.  (`#MESSAGEK').   These  parameters will directly determine the amount
  289.  of  memory used while the BBS is running and the disk space needed to
  290.  support the message base and userlog.  
  291. 4. CONFG        
  292.  
  293.       To setup  the  BBS,  you must first configure your system.  This
  294.  means  taking  the  example  configuration  and  tayloring it to your
  295.  liking.   The  example  is  based  directly on `The Amiga Zone'.  The
  296.  first  thing  you must do is chose a name for your BBS (`#NODENAME'),
  297.  a  default  banner  (see  `banners'  and `#NODETITLE'), enter in your
  298.  Identification  (`#NODEID').  It is this basic information that users
  299.  and  other  Citadels will know your bbs by.  Once you have an idea of
  300.  what  the  theme of your BBS is, you can apply it to the initial room
  301.  (`#BASEROOM'),  and  floor (`#MAINFLOOR').  These will be the initial
  302.  place  that  people  are located at when they login to your BBS.  Now
  303.  comes  the real work.  You must decide some `basic system parameters'
  304.  that  will  define how much disk space your system will use.  This is
  305.  important  since  the  smaller  the  message  base  is,  the  quicker
  306.  messages  will  scroll off.  Citadel has a fixed message base so that
  307.  once  you  configure  your  system, the disk space usage is constant.
  308.  You  will  never  run  out  of  message space, the BBS will reuse the
  309.  existing  space deleting the oldest messages to make room for the new
  310.  ones.  
  311.  
  312.       Next we  have  the  `USER_PARAMETERS'  which  define the default
  313.  `PRIVILEGES'  for  your  users.  These determine how open your system
  314.  is(can  a  user  create their own account or do you do it?).  Whether
  315.  people  are  able  to use doors, or post messages to the network.  If
  316.  you  restrict  people,  then  they  will  have  to  ask  you  for the
  317.  privilege(and  you will have to give it to those you choose).  If you
  318.  make  them  the default, people will get them automatically, you then
  319.  do  not have to do anything.  I setup my system to be as automatic as
  320.  possible.   People can create their own account and do not need to be
  321.  validated.   The  example  setup  is  configured  that way.  The most
  322.  important  user  is  the  SYSOP, You.  There are some parameters that
  323.  make  your  life  easier.  the  `sysop_parameters'  will take care of
  324.  those.   Now  we  get  to  `Network'  parameters  which  you can skip
  325.  initially,  but  will  eventually want to look into.  Get your BBS up
  326.  and running first before you worry about that.  
  327.  
  328.       The basic  BBS has several `areas' you will want to setup.  Most
  329.  people  will  setup  a logical assignment that is the root of the BBS
  330.  disk  area  (called  `#HOMEAREA')  and make everything a subdirectory
  331.  off  of that.  Citadel is pretty flexible, if you are running from an
  332.  A500 with 2 floppies, it will run, even if the size will be small! 
  333.  
  334.       CONFG is   simple   to   run.    Once   you   have  created  the
  335.  `CTDLCNFG.SYS'  file,  you  just run CONFG in the same directory.  It
  336.  will  read each line, and report any errors.  If there are errors, it
  337.  will  stop after the last line is read.  If no errors, it will finish
  338.  up  its  processing,  possibly  ask you some questions and create all
  339.  the required files.  
  340. 5. SYSOP_PARAMETERS        
  341.  
  342.       There are  alot  of  parameters to setup.  Don't be overwhelmed!
  343.  Each  has  a  simple  description and parameters.  Some are ok as the
  344.  default.  
  345.  
  346.       `#LOCK-PORT'     `#QWKWORKAREA'   `#QWKFILEAREA' 
  347.  
  348.       `#QWKMAXROOM'    `#QWKMAXPACKET'  `#QWKNAME' 
  349.  
  350.       `#QWKLOCATION'   `#SYSOP-ARCHIVE' `#SYSPASSWORD' 
  351.  
  352.       `#SYSOPNAME'     `#MIRRORMSG'     `#SHARED-ROOMS' 
  353.  
  354.       `#NET_AREA_SIZE' `#MAX_NET_FILE'  `#EDITOR' 
  355.  
  356.       `#CLOCK'         `#SYSBAUD'       `#SERIAL_7WIRE' 
  357.  
  358.       `#DIRECTTOCHIP'  `#SERIALDEVICE'  `#UNITNUMBER' 
  359. 5.1. #LOCK-PORT        
  360.  
  361.       This parameter  tells Citadel that you wish to lock the COMPUTER
  362.  to  MODEM  speed  to  a  particular  value.   It  also causes CTS/RTS
  363.  hardware  handshaking  to  be  used so that the BBS communicates with
  364.  the  modem  at  a single speed and the modem handles all the Modem to
  365.  Modem  speed  negotiations.   This  parameter takes a single numberic
  366.  parameter  which  must  be  1  to  8.   The  values correspond to the
  367.  speeds: 
  368.  
  369.  
  370.       0 -  300   1 -  1200   2 -  2400   3 -  4800 
  371.  
  372.       4 - 9600   5 - 14400   6 - 19200   7 - 38400   8 - 57600 
  373. 5.2. #QWKWORKAREA        
  374.  
  375.       This parameter  takes  a  quoted  string  as  an  argument.   It
  376.  defines  the  working  area for the QWK data.  If you wish to support
  377.  QWK  packet  downloads(you  must  have  external archviers available)
  378.  then  this  needs  to  be  defined  to  be  a directory where the QWK
  379.  processing can put temporary files.  
  380. 5.3. #QWKFILEAREA        
  381.  
  382.       This parameter  takes  a  quoted  string  as  an  argument.   It
  383.  defines  the  directory  where  the  QWK  processing  saves  the USER
  384.  related  data.  You must define this if you wish to supprt QWK packet
  385.  downloads(external archivers must be available).  
  386. 5.4. #QWKMAXROOM        
  387.  
  388.       This parameter  defines  what the maximum number of rooms a user
  389.  can  scan  at  one time.  Users can set their own personal value from
  390.  one   to   this  number.   This  parameter  takes  a  single  integer
  391.  argument.  
  392. 5.5. #QWKMAXPACKET        
  393.  
  394.       This parameter  defines  what  the  maximum  messages a user can
  395.  scan  at  one  time.  Users can set their own personal value from one
  396.  to this number.  This parameter takes a single integer argument.  
  397. 5.6. #QWKNAME        
  398.  
  399.       This parameter  defines a single quoted string that is passed to
  400.  the QWK packet to define the name of the packet file.  
  401. 5.7. #QWKLOCATION        
  402.  
  403.       This parameter  defines  a single quoted string passed inthe QWK
  404.  packet as the location of your BBS.  
  405. 5.8. #SYSOP-ARCHIVE        
  406.  
  407.       This parameter   defines   a   file  where  all  sysop  mail  is
  408.  archived.   If  this  is  defined,  each  mail message to you will be
  409.  written to this file.  
  410. 5.9. #SYSPASSWORD        
  411.  
  412.       This parameter  defines  a filename that has you sysop password.
  413.  This  password  will allow you(or anyone you give the password to) to
  414.  become  a  REMOTE  Sysop.   A Remote Sysop can do anything you can do
  415.  from the console so use this wisely.  
  416. 5.10. #SYSOPNAME        
  417.  
  418.       This is  you...   This  parameter tells the BBS that you are the
  419.  Sysop.   You  will have to create you account first, then add this to
  420.  the CTDLCNFG.SYS and run CONFG again.  
  421. 5.11. #MIRRORMSG        
  422.  
  423.       This parameter  tells  the  BBS that you wish to have a mirrored
  424.  message   file.   Basically,  if  you  have  the  memory,  copy  your
  425.  `CTDLMSGS.SYS'  to  RAM:,  and  then start up the BBS, this parameter
  426.  will  allow  the  BBS to write to both this mirrored message file and
  427.  the  regular  one.  You are responsible for coping te current file to
  428.  the  mirrored  one  before  the  BBS  starts up.  In addition to this
  429.  statement  you  need  to  include a `#MSG2AREA' to tell the BBS where
  430.  the  secondary  message  file  is.   This  parameter  takes  a single
  431.  integer  value, 0 for off, 1 for on.  If you were using this feature,
  432.  then put "#MSG2AREA 1" in the CTDLCNFG.SYS file.  
  433. 5.12. #SHARED-ROOMS        
  434.  
  435.       This parameter  defines  the  maximum  number  of rooms a single
  436.  node  can  share  with you.  Each entry takes up 6 bytes so the space
  437.  requirements  are  minimal.  The `DATACHNG' utility will allow you to
  438.  modify this value(make it larger) so plan accordingly.  
  439. 5.13. #NET_AREA_SIZE        
  440. 5.14. #MAX_NET_FILE        
  441. 5.15. #EDITOR        
  442. 5.16. #CLOCK        
  443. 5.17. #SYSBAUD        
  444. 5.18. #SERIAL_7WIRE        
  445. 5.19. #DIRECTTOCHIP        
  446. 5.20. #SERIALDEVICE        
  447. 5.21. #UNITNUMBER        
  448. 6. USER_PARAMETERS        
  449.  
  450.       User parameters  is  a  catch  all  for  most  of the parameters
  451.  related  to  user.   Since  the BBS is about users, nearly everything
  452.  could   be   put  into  this  catagory.   There  are  three  sets  of
  453.  parameters.   The  first is the `unlogged users' parameters.  This is
  454.  all  the  parameters  relating  to a user that has not logged in yet.
  455.  The  second  is the `PRIVILEGES', the values given to a new user when
  456.  their account is created.  The last is the `user characteristics'.  
  457.  
  458.       Each of  these  parameters must be setup and will define the way
  459.  your BBS operates.  
  460. 6.1. unlogged users       
  461.  
  462.       When a  user first calls the BBS, they will get a set of default
  463.  parameters  that will define how the BBS operates until they login or
  464.  create  an account.  If you do not allow them to create an account on
  465.  their  own,  they  will have to send you mail and you will have to do
  466.  this  manually(called  account  validation).   Citadel  allows you to
  467.  operate either way.  For unlogged users, the parameters are: 
  468.  
  469.       `#UNLOGGED-WIDTH'   -  The default width of a line
  470.  
  471.       `#LOGINOK'          -  Open/Close system control
  472.  
  473.       `#ENTEROK'          -  Can users enter messages while not logged in?
  474.  
  475.       `#READOK'           -  Can users read messages while not logged in?
  476.  
  477.       `#ANON-MAIL-LENGTH' -  Limit on anonymous mail length to prevent `RUGGIES'
  478.  
  479.       `#LOGIN-ATTEMPTS'   -  Limit on how many times a user can make a mistake
  480. 6.2. PRIVILEGES        
  481.  
  482.       This section  defines  the  user  privileges,  defaults  and all
  483.  related  parameters.   These  parameters  will save you some time and
  484.  effort.   If  you have doors and want everyone to be able to play, it
  485.  does  not make sense to have to give everyone the privilege.  Instead
  486.  use these parameters to set the defaults.  
  487.  
  488.       `#DOORPRIVS'        -  Allow new users to have access to doors 
  489.  
  490.       `#ROOMOK'           -   Allow  users  to  be  able to create new
  491.  rooms.  
  492.  
  493.       `#ALLMAIL'          -  Control who can use mail 
  494.  
  495.       `FILE-PRIV-DEFAULT' -   Allow  users  to  have file up/down load
  496.  access 
  497. 6.3. user characteristics       
  498. 6.4. #BASEROOM        
  499.  
  500.       Citadels always  have  a  minimum  of three rooms.  There is the
  501.  `Aide  room',  `Mail  room', and the initial room a caller starts out
  502.  in called the base room.  
  503.  
  504.       Historically, the  initial  room  was  always  called The Lobby.
  505.  Most  Citadels  today  have this configuration parameter which allows
  506.  you to name that initial room.  
  507.  
  508.       This parameter  is  a string value obeying formatting directives
  509.  and  goes  through the Citadel formatter, and you must limit yourself
  510.  to  19  characters  or  less  for  this  value.  And one more note --
  511.  Citadel  will  append  the  '>'  to this name when it prints the room
  512.  prompt  for  this  room, you don't have to put it in yourself. If you
  513.  wished to emulate the old CP/M Citadel, you'd set baseRoom thus: 
  514.  
  515.       #BASEROOM "Lobby" 
  516.  
  517.       There is no default for this parameter.  
  518. 6.5. #MAINFLOOR        
  519.  
  520.       MainFloor is  analogous to #BASEROOM.  Most Citadels have a base
  521.  floor,  just as it has an Aide> room, etc.  This parameter allows you
  522.  to  name  this  base  floor.   This parameter is a string value which
  523.  cannot  be  longer than 19 characters, and specifies the name of your
  524.  base  floor.   So,  if  you  want to name your base floor MAIN FLOOR,
  525.  you'd have 
  526.  
  527.       #MAINFLOOR "MAIN FLOOR" 
  528.  
  529.       There is no default value for this parameter.  
  530. 6.6. areas        
  531.  
  532.       The BBS  is  organized  into  what  is  called areas.  These are
  533.  directories  that either Citadel creates files in, or uses to recieve
  534.  temporary  files  from  a network session, or user action.  There are
  535.  parameters for each of the major areas.  
  536.  
  537.       `#HOMEAREA'        - The root location of the BBS.
  538.  
  539.       `#HELPAREA'        - Help files(`.HLP'), menus, and banners
  540.  
  541.       `#LOGAREA'         - User data files
  542.  
  543.       `#ROOMAREA'        - Room related files
  544.  
  545.       `#MSGAREA'         - Message base
  546.  
  547.       `#MSG2AREA'        - Optional secondary Message base to speed up the BBS
  548.  
  549.       `#FLOORAREA'       - Floor related files
  550.  
  551.       `#AUDITAREA'       - User, Door, and File activity
  552.  
  553.       `#HOLDAREA'        - Hold area for user messages
  554.  
  555.       `#EDIT-AREA'       - Editor area for a sysop editor(console only)
  556.  
  557.       `#NETAREA'         - Network files area
  558.  
  559.       `#NET_RECEPT_AREA' - Receiving area for files sent to you
  560.  
  561.       `#DOMAINAREA'      - Domain data files area
  562.  
  563.       The `CONFG'  program  will require that you define each area and
  564.  will create the directory if it does not exist.  
  565. 6.7. #HELPAREA        
  566.  
  567.       This parameter  specifies  where  all of your Help files will be
  568.  located.   These  files  are  *.HLP, *.BLB, and *.MNU.  Normally, you
  569.  should  create  this  directory  and  place  the  help  files  in the
  570.  directory  before  bringing  up  Citadel-86,  since  help  files  are
  571.  usually online at all times.  
  572.  
  573.       #HELPAREA "cit:helps" 
  574.  
  575.       The help   files,   menus  and  default  bulletins  are  in  the
  576.  cithelps.lha  file  in the Citadel Documentation room.  You will have
  577.  to  do  some  customization  of  these files for your system.  If you
  578.  find  an error or re-write the contents of a file, try to return that
  579.  file so that others will benifit from your work.  
  580. 6.8. #LOGAREA        
  581.  
  582.       This parameter  specifies  the  location  of  your `CTDLLOG.SYS'
  583.  file (this file is sized by your `#LOGSIZE' parameter).  
  584.  
  585.       #LOGAREA "cit:users"         -- put it in a general system dir 
  586. 6.9. #MSGAREA        
  587.  
  588.       This parameter  specifies  the location of `CTDLMSG.SYS'.  It is
  589.  also   the   location   of   the   special   Citadel   message   file
  590.  `CIT_MESSAGES.SYS'.   Citadel  will  create the message file when you
  591.  run   `CONFG',  the  other  file  is  supplied  with  the  executable
  592.  archive.  
  593.  
  594.       #MSGAREA "cit:messages"             -- give msgs there own place
  595.  in the sun 
  596. 6.10. #MSG2AREA        
  597.  
  598.       This parameter    specifies    the    location   of   a   second
  599.  `CTDLMSG.SYS'.   Citadel  will  create  the message file when you run
  600.  `CONFG'.   Before  starting  up  the  BBS,  you  will  need  to  copy
  601.  `CTDLMSG.SYS'  into  this area if you have the `#MIRRORMSG' statement
  602.  in the `CTDLCNFG.SYS'.  
  603.  
  604.       #MSG2AREA "cit:messages"              --  give  msgs  there  own
  605.  place in the sun 
  606. 6.11. #FLOORARE        
  607.  
  608.       This parameter specifies the location of `CTDLFLR.SYS'.  
  609.  
  610.       #FLOORAREA "cit:floors" 
  611. 6.12. #AUDITAREA        
  612.  
  613.       This parameter   is   a  string  value  parameter  specifying  a
  614.  directory  which will hold the audit files.  If this parameter is not
  615.  present  in  your  `CTDLCNFG.SYS' file, then the audit files will not
  616.  be created or updated by Citadel.  
  617.  
  618.       The audit  files  are  usually  text files of information on how
  619.  the  BBS  is  running.   For  example there is a file (`CALLLOG.SYS')
  620.  which  shows information on the callers.  Another file keeps track of
  621.  door  usage  (`DOORUSE.SYS'),  and  another  one the file up/download
  622.  information (`FILELOG.SYS').  
  623.  
  624.       #AUDITAREA "c:audit"         -- This can only be a subdirectory 
  625. 6.13. #HOMEAREA        
  626.  
  627.       This parameter  defines  the base directory the BBS will use for
  628.  its operation.  
  629.  
  630.       This is  the directory that the BBS will operate out of.  In the
  631.  examples, 
  632.  
  633.       this directory  is  assigned  to the logical CIT: to make things
  634.  simpler.  
  635. 6.14. CIT_MESSAGES.SYS        
  636.  
  637.       This file  contains  most  of the Citadel BBS messages.  The BBS
  638.  references  the text via the Message code.  This allows the SYSOP the
  639.  maximum  flexibility  in  configuring  their  BBS.   You  can use the
  640.  standard messages, or customize them to your heart's content.  
  641.  
  642.       The Message  file  is  formatted into one line per message.  The
  643.  first  8  columns may be A "#" for a comment line, or a message code.
  644.  THE  "#"  in  column 1 will cause the rest of the line to be ignored.
  645.  Column  9  is  blank,  for  readability, and columns 10 to 79 are the
  646.  message  text.   If  the message text starts with an "@", the message
  647.  text  is taken to be a filename and that file will be read instead as
  648.  the  message text.  This will allow you to have more than one line in
  649.  a  single  message.   The  message  codes end in either EX for expert
  650.  user  messages,  or  NO  for  novice  user message.  If no EX version
  651.  exists,  the  BBS  will automatically use the NO version.  If neither
  652.  one  exists,  the  BBS  will  display  "***ERROR CODE nnnnnnnn" where
  653.  nnnnnnnn  is  the  missing  message.  If these occur, just create the
  654.  appropriate  message and add it to the file.  If you find any message
  655.  codes in the original file missing, then notify the Amiga Zone.  
  656.  
  657.       One of  the  reasons for the message formatting is to get system
  658.  dependant  information  from the BBS by using special variable names.
  659.  These names are listed below: 
  660.    Variable     Description
  661.    ^variant     Name of this Citadel Variant such as "Citadel 68K"
  662.    ^version     Major Version Id of Citadel
  663.    ^sysvers     Minor Version Id of Citadel
  664.    ^baseroom    The baseroom of your BBS
  665.    ^sysop       The name of the Sysop
  666.    ^nodetitle   The BBS Node Title
  667.    ^nodename    The BBS Node Name
  668.    ^nodedomain  The Domain the BBS is considered part of
  669.    ^nodeid      The BBS Node Id
  670.    ^mainfloor   The Floor that contains the BaseRoom
  671.    ^curruser    The name of the Current User.
  672.    ^ulprotocols A list of the Protocols usable for uploading
  673.    ^dlprotocols A list of the Protocols usable for downloading
  674.    ^doorlist    A list of the Doors available in the current room
  675.    ^lastuser    The last caller's name
  676.    ^privileges  A list of the privileges you currently have.
  677.    ^callcount   The number of calls this Citadel has recieved.
  678.    ^ia1         Special Integer Argument #1 (see below)
  679.    ^sa1         Special String Argument  #1
  680.    ^ia2         Special Integer Argument #2
  681.    ^sa2         Special String Argument  #2
  682.    ^ia3         Special Integer Argument #3
  683.    ^sa3         Special String Argument  #3
  684.    ^currtime    The current time
  685.    ^currdate    the current date
  686.    ^s           A single space
  687.    ^n           A newline followed by a space
  688.  
  689.       The Special  Arguments  are pieces of data that are used in some
  690.  of  the existing messages.  Currently the 3rd one is not used(but may
  691.  be).   Most of the messages do not use them, but those that do should
  692.  probably  continue  to use them.  You can remove the special variable
  693.  from  the  messages  that currently do use them, but adding them to a
  694.  message  that  does  not will get you a zero for an interger argument
  695.  and nothing for a string argument.  
  696.  
  697.       It is  best to keep the original message file around to check to
  698.  see what was available for the code.  
  699. 6.15. CALLLOG.SYS        
  700.  
  701.       CALLLOG.SYS contains  three  types  of  notes.   The  first type
  702.  lists when the system has come up and down.  
  703.  
  704.       The second  type  records  who  has  called,  listing  login and
  705.  logout times, one line per person, in the following format: 
  706.  
  707.       <person>   :   <login time> - <logout time> <baud rate> 
  708.  
  709.       Occasionally such  a  line will have an extra character appended
  710.  onto it, and they have the following significance.  
  711.  
  712.       '+'  The user logged in as new.
  713.  
  714.       '-'  The user used .TS to logout.
  715.  
  716.       'T'  The user timed out on the system.
  717.  
  718.       'E'  The user hit the error limit on the system and was kicked off.
  719.  
  720.       'B'  The system kicked the user off for too many offenses against `BADWORDS.SYS'.
  721.  
  722.       'C'  The user tried to chat with you.
  723.  
  724.       The third  type  of  message  in CALLLOG.SYS are notes regarding
  725.  network  sessions,  both  normal  and anytime-net.  These record on a
  726.  single  line  the  start  and  end  times  of the net sessions.  This
  727.  particular  message  can  be  disabled  by  using  the #CLEAN-CALLLOG
  728.  parameter.  
  729. 6.16. FILELOG.SYS        
  730.  
  731.       FILELOG.SYS format   is  somewhat  different.   Generically,  it
  732.  looks like this: 
  733.  
  734.       <user name> @ <baud rate> 
  735.  
  736.       file1 (n  bytes)  <roomname>  <U  or  D> <start to end> <length>
  737.  <protocol> 
  738.  
  739.       [FAILED] 
  740.  
  741.       file2 (n  bytes)  <roomname>  <U  or  D> <start to end> <length>
  742.  <protocol> 
  743.  
  744.       [FAILED] 
  745.  
  746.       This format  keeps  the number of user names down.  "n bytes" is
  747.  the  size  of  the  file.  "roomname" is the room involved.  "U or D"
  748.  refers  to whether the named file was Uploaded or Downloaded.  "start
  749.  to  end" refers to start time and end time of the file session, while
  750.  length  is  the amount of time involved.  Protocol will be one of the
  751.  three  XMODEM,  YMODEM,  or  WXMODEM,  or  an  external  one you have
  752.  setup.   "FAILED"  will  only  appear  on  the  line  if the transfer
  753.  failed.  
  754. 6.17. DOORUSE.SYS        
  755.  
  756.       DOORUSE.SYS simply  lists who used what doors for what amount of
  757.  time at what time of the day.  It appears in the `#AUDITAREA'.  
  758. 6.18. #HOLDAREA        
  759.  
  760.       Citadel has  an  optional  capability to save a user's messages,
  761.  put  them  on  hold  so  to speak.  This can be because the user lost
  762.  carrier  while  entering  a  message,  or  told  the  BBS to Hold the
  763.  message  for  later.   The reason this is optional, is that if you do
  764.  not  specify  this  area,  a user will not be able to use this option
  765.  and  any  message  held  will  be  lost  when the user terminates the
  766.  session.   A held file takes about 8K bytes of space on the disk.  It
  767.  is  possible  that  every user could have a held message at one time,
  768.  each  is  uniquely  identified so in figuring disk space, this should
  769.  be remembered.  
  770.  
  771.       #HOLDAREA "hold" 
  772. 6.19. #EDIT-AREA        
  773.  
  774.       The optional   edit  area  goes  along  with  the  sysop  editor
  775.  directive  `#EDITOR'  which  is  used to define a directory where the
  776.  BBS   will   put  the  temporary  message  file  and  run  the  sysop
  777.  editor(this  is  for  the  console  user only).  This is like any BBS
  778.  area.  
  779.  
  780.       #EDIT-AREA "RAM:" 
  781. 6.20. #EDITOR        
  782.  
  783.       This is  the  command  that  is used to run the optional Console
  784.  user  editor.   When  a user is logged into the console, this command
  785.  is  used to invoke the external program to edit the message text(will
  786.  be  written  to  tempmsg.sys  in  this  area).   This  command should
  787.  specify  any  options  needed to make the editor run and have the BBS
  788.  pause  while the editor is running(some editors will release the task
  789.  as  soon  as  they  startup  which  will make Citadel think your done
  790.  editing).  
  791.  
  792.       #EDIT-AREA "TTX WAIT" 
  793. 6.21. #NETAREA        
  794.  
  795.       This command  tells  the  BBS  where  to  put the files that are
  796.  related to the network process.  It is like any other BBS area.  
  797.  
  798.       #NETEAREA "NET" 
  799. 6.22. #NET_RECEPT_AREA        
  800.  
  801.       This is  a special BBS directory that is used to store all files
  802.  sent  to  your  system  by  another  system during a network session.
  803.  When  a  system uses the Send File faculty(not the same as requesting
  804.  a file over the network).  
  805.  
  806.       #NET_RECEPT_AREA  "Recieving" 
  807.  
  808.       Files sent  to  your  BBS using the utility `AFF' will appear in
  809.  this   area.    In  addition,  the  parameters  `#NET_AREA_SIZE'  and
  810.  `#MAX_NET_FILE'  will  be  used  to limit the amount of files and the
  811.  largest file in this area.  
  812. 6.23. #NET_AREA_SIZE        
  813.  
  814.       This parameter  controls  the  total amount of space you wish to
  815.  allow  files  coming into your system via the net(Send File Command).
  816.  This  is  the  limit  on files being sent to your without you asking.
  817.  If  this  area  fills  up  to  this  size,  additional  files will be
  818.  rejected.  
  819. 6.24. #MAX_NET_FILE        
  820.  
  821.       This parameter  controls  the size of the largest file your will
  822.  allow  to be sent to you during a network session.  Files larger than
  823.  this size will be rejected.  
  824. 6.25. #DOMAINAREA        
  825.  
  826.       This parameter  specifies  the  area  where Citadel will put the
  827.  domain   related  temporary  files.   The  files  in  this  area  are
  828.  dynamic.   Citadel  will  create  them  as  needed  and maintain them
  829.  totally.   You  will not need to worry about these files unless there
  830.  is  a  problem  with  domain  mail  and  you  are the server for your
  831.  domain.   This  is  a  fairly  advance  topic and not covered in this
  832.  document.   Eventually,  there  will be a separate document for these
  833.  types of issues.  
  834. 6.26. basic system parameters      
  835.  
  836.       The basic      system     parameters     define     how     many
  837.  `rooms'(`#MAXROOMS'),  messages  per room(`#MSG-SLOTS'), private mail
  838.  messages    per    user(`#MAIL-SLOTS'),    Size    of   the   message
  839.  base(`#MESSAGEK')  and  if you will want it encrypted (`#CRYPTSEED').
  840.  You  want  to give some careful thought to these parameters since any
  841.  choices  made  now  will be a bit painful to modify later.  There are
  842.  `utilties'  that  will  allow  parameters to be modified, but only to
  843.  increase  them.   To  decrease  them  requires that you start over by
  844.  deleting the appropriate files and reconfiguring.  
  845.  
  846.       I recommend  that  you  keep  `#CRYPTSEED'  at zero although any
  847.  value  can  be  used.   It  makes  debug easier for me if I grab your
  848.  files  plus that value will speed up all the processing.  The message
  849.  slots  and size of the message base is a little cryptic.  If you have
  850.  100  slots,  then Citadel will remember the last 100 messages in each
  851.  room.   Mail has a separate value, but it is the same idea.  With 100
  852.  rooms,  you have 10,000 active messages possible in the system.  With
  853.  messages  sizing  from   500  bytes  to  7500 bytes, you could have a
  854.  message  base  of  5,000,000  to  75,000,000!   Typically the average
  855.  message  is  alot  closer  to the 500 bytes size.  The 600K size here
  856.  gives  me  a  file  that  is 1217 blocks in size(614400 bytes).  This
  857.  would  actually  fit  on  a  floppy  if  you wanted(although it would
  858.  pretty  much  fill  the  floppy).  You can make these pretty much any
  859.  value  you  want,  the  larger  the  value  the  more  the disk space
  860.  needed.  A reasonable approximation for messagek is: 
  861.  
  862.       ( MSG-SLOTS + MAIL-SLOTS ) * 2.75K 
  863.  
  864.       ( 120 + 99 ) * 3K = 602.25 
  865.  
  866.       You can  use  more.....   For  the larger sized system, use 7.5K
  867.  and get 1604K...  The practical limit is 4095K 
  868. 6.27. #CRYPTSEED        
  869.  
  870.       CRYPTSEED is  a value used in encrypting the data files.  Choose
  871.  a  value  when  you  install the system, but not thereafter -- or you
  872.  won't  be  able  to  read  the existing files any more.  If you use a
  873.  value  of  zero,  none of the data files will be encrypted.  This has
  874.  little  value  since  you  as  SYSOP can access anybody's account and
  875.  read  any message, there is no privacy.  I recommend using zero.  You
  876.  should  not  allow  any of the system files to be downloaded and this
  877.  is  the only protection you have if you do.  It is better to keep the
  878.  users  out  of  the data files.  Using zero has an additional benifit
  879.  that  your  system  will  be  slightly faster.  If you use a non zero
  880.  encryption  seed,  all  the  data files will be encoded.   An example
  881.  is: 
  882.  
  883.       #CRYPTSEED 1234 
  884.  
  885.       It is  important that you do not change this value.  If for some
  886.  reason  you  should  lose  your `CTDLCNFG.SYS' file, run the `VERIFY'
  887.  utility  and  it  will  display not only this value, but the value of
  888.  all  the  important data from this file.  Without this data item, you
  889.  will  not  be  able to reconfigure your BBS.  This is important since
  890.  if  the bbs should crash, or your system should go down while the bbs
  891.  is  running,  you  have to run the CONFG utility to recreate the data
  892.  file  `CTDLTABL.SYS'.   Without  that  file,  the  BBS  will not run.
  893.  There  is  only  one  parameter  on the command line.  If it does not
  894.  match  "onlyParams"  or  "FirstInit"  then  CONFG will assume you are
  895.  re-initializing  the  BBS.   "FirstInit"  assumes  that  you  want to
  896.  create  the  BBS  from  scratch  initializing  all  the  files  as if
  897.  creating  a  new  BBS.   This means that if you already have a BBS up
  898.  and  running,  all  the data files will be re-created and initialized
  899.  as  empty(i.e  all  existing  users deleted, all messages gone).  You
  900.  can  use this the first time and CONFG will not ask you any questions
  901.  about  creating this file or that one...  Once you have a running BBS
  902.  and  you  need  to  modify certain parameters(see `Safe Configuration
  903.  Parameters') 
  904. 6.28. Safe Configuration Parameters      
  905.  
  906.       These parameters  control  characteristics  of  the  BBS and not
  907.  file  sizes.   You can modify these at any time by changing the value
  908.  in  the  `CTDLCNFG.SYS' file and then running "CONFG ONLYPARAMS".  To
  909.  do  this,  change  the  file,  bring the BBS down, then run CONFG and
  910.  then restart the BBS.  
  911. 6.29. #NODEID        
  912.  
  913.       As mentioned,  this  parameter  is  a network parameter that has
  914.  traditionally  always  been  set,  even for non-network Citadels.  If
  915.  you  have  no  plans  to ever be on a `C86Net', Then this is not real
  916.  important.  
  917.  
  918.       If you  do  plan  to  join  the `C86Net', (we'll go over this in
  919.  more  detail in the section on `Networking'), then you do have to set
  920.  this parameter correctly.  The format of this parameter is 
  921.  
  922.       "<Country code><Area Code><Phone number>" 
  923.  
  924.       all of  which  applies  to  the  phone  your  system resides on.
  925.  Country  code  is  a  two letter sequence indicating what country you
  926.  live  in (US is the United States, CA is Canada.  Other country codes
  927.  may  be  found  in  COUNTRY.DOC).  Area code is the area code of your
  928.  system  (yes,  we  are  aware  there is a clear bias towards US-style
  929.  telephony).   And  Phone  number is, of course, the phone number your
  930.  system  is  on.   You  can  put  punctuation (such as parenthesis and
  931.  dashes),  but  please  be  conservative with them.  This string value
  932.  does  not  obey  formatting  directives.   Here's  a  fairly  generic
  933.  example: 
  934.  
  935.       #NODEID "US (609) 953 8159"   -- Some system somewhere..:) 
  936.  
  937.       Other systems   will   use   your   node  id  to  call  you  for
  938.  networking.   It  will  be  how  other systems identify your system's
  939.  messages.  
  940. 6.30. #NODENAME        
  941.  
  942.       nodeName is,  in reality, purely a network parameter, and if you
  943.  have  no plans to ever join a `C86Net', then there is no need to fill
  944.  in  this  parameter.   However,  it has always been traditional, even
  945.  before  there  was  a net for any Citadel system anywhere, to fill in
  946.  this  and the `#NODEID' parameter.   nodeName is a string value which
  947.  does  NOT  accept  formatting directives (i.e., formatting directives
  948.  will  be  ignored).   It  can  be no longer than 19 letters long.  It
  949.  should  be  a  short, mnemonic name for your system.  An EXAMPLE of a
  950.  reasonable value: 
  951.  
  952.       #NODENAME "ODD-DATA"             -- The original Citadel 
  953.  
  954.       If you  ever  do  join  a  `C86Net',  messages  from your system
  955.  appearing on another Citadel-86 node will look something like this 
  956.  
  957.       82Nov23 from Cynbe ru Taren @ODD-DATA 
  958.  
  959.       except ODD-DATA   would   be   replaced   with  your  value  for
  960.  #NODENAME.  
  961. 6.31. #NODETITLE        
  962.  
  963.       The first  parameter  you should find is called nodeTitle. It is
  964.  a  string  value  obeying  formatting  directives,  and is subject to
  965.  formatting   considerations.    nodeTitle   is   the  title  of  your
  966.  installation  printed  when carrier is detected on your system.  More
  967.  precisely,  nodeTitle  will  show  up  in the following place on your
  968.  system: 
  969.  
  970.       Welcome to <#NODETITLE> 
  971.  
  972.       However, nodeTitle  may  not  necessarily  be  printed  at  this
  973.  point.   After  successfully  bringing your system up, please consult
  974.  the  section  on  Help  Files for more information on banner options.
  975.  EXAMPLE: 
  976.  
  977.       #NODETITLE "Test   System\n  Truly  a  Heaven  in  Reverse"  The
  978.  #NODETITLE  is  printed out on .Read Status commands, also.  There is
  979.  no formal limit on the length of this parameter.  
  980. 6.32. banners        
  981. 6.33. The Amiga Zone      
  982.  
  983.       The Amiga  Zone is the primary support BBS.  The number is (609)
  984.  953-8159.   There are other Citadels that will help the budding Sysop
  985.  out,  but  this  is  the  place you will find the latest and greatest
  986.  version  of  Citadel,  CONFG,  and  the  Utilities.   In  addition to
  987.  calling  direct,  you  should  think about networking the Citadel 68K
  988.  room.   This  is  the  place  where  comments, bug reports, and other
  989.  issues  are  discussed.   The  Amiga  Zone  will feed the room to any
  990.  Citadel  that  wishes  to  network,  however, the Amiga Zone will not
  991.  call  out for a network session unless the system is local.  You will
  992.  have  to pay for the calls.  This does not amount to much if you call
  993.  a  few  times  a  week.  Fortunately, there are about 200 Citadels in
  994.  the  USA  and  Canada, you might find a local system to network with,
  995.  or  one  that costs less than the Amiga Zone to network with.  If you
  996.  wish,    I   will   answer   questions   at   my   internet   address
  997.  "apreston@isd.csc.com" or "tony-preston@cup.portal.com".  
  998. 6.34. #LOGSIZE        
  999.  
  1000.       This numerical  parameter  gives  you  the ability to decide how
  1001.  many  accounts will be available on your system.  If you run a system
  1002.  in  which  more  accounts  are used than there are accounts reserved,
  1003.  then  new  accounts  are generated by killing old accounts.  Accounts
  1004.  are  recycled  by finding the account who's last use is the oldest of
  1005.  all  the accounts in the system, under the assumption such an account
  1006.  is no longer active.  
  1007.  
  1008.       All space  is reserved immediately for these accounts.  The size
  1009.  of  this  file  can  be  estimated  from  the formula(this includes a
  1010.  possible held file for every USER).  
  1011.  
  1012.       # of  bytes  =  LOGSIZE  *  (82  + MAXROOMS + (6 * MAIL-SLOTS) +
  1013.  8092) 
  1014.  
  1015.       so if  you  are  operating  in  a  restricted  environment, plan
  1016.  accordingly.   If  you  need  to,  you can expand the size of the log
  1017.  through  the  use  of  the  `DATACHNG' utility, but the log cannot be
  1018.  shrunk.  This is a numerical value.  Here is an example: 
  1019.  
  1020.       #LOGSIZE 200 
  1021.  
  1022.       For a   system   with   100  rooms(`#MAXROOMS'),  and  100  mail
  1023.  slots(`#MAIL-SLOTS')  this  would  be  just  over  150K bytes for 200
  1024.  users.   It  should  be noted that the larger the logsize, the longer
  1025.  the  `CONFG'  utility  will  take  to  re-configure the system.  Each
  1026.  entry is checked and updated when this is done.  
  1027. 6.35. #MAXROOMS        
  1028.  
  1029.       This numerical  parameter  specifies the maximum number of rooms
  1030.  your  system will support.  Since the baseRoom, Aide>, and Mail> room
  1031.  are  necessary,  the  smallest  value you can give is 3.  The largest
  1032.  number is 65536.  If you wanted to have a 64 room system, you'd have 
  1033.  
  1034.       #MAXROOMS 64 
  1035.  
  1036.       You can  use  the  following  formula  to estimate the number of
  1037.  bytes a room file will take up on your SYSTEM: 
  1038.  
  1039.       # of bytes = MAXROOMS *(50 + (6 * MSG-SLOTS)) 
  1040.  
  1041.       For a    system    with    100    rooms    and    200    message
  1042.  slots(`#MSG-SLOTS'),  you  would need aproximately 125 Kbytes of disk
  1043.  space.   It  should  be noted that the larger this is, the longer the
  1044.  `CONFG' takes since each room is updated.  
  1045. 6.36. #MAIL-SLOTS        
  1046.  
  1047.       This is  a  numerical parameter specifying how many messages per
  1048.  log  record you wish to reserve for Mail.  The Mail> room is the only
  1049.  room  in the system whose data is not kept in CTDLROOM.SYS.  Instead,
  1050.  the  file  CTDLLOG.SYS  contains the "Mail>" room, reserving for each
  1051.  account  enough  room  for MAIL-SLOTS Mail messages.  Therefore, this
  1052.  parameter  gives  you  the  ability  to  decide the maximum number of
  1053.  Mail>  messages  per user they can access.  Please remember if a user
  1054.  gets  more  messages  in  Mail> than there are MAIL-SLOTS between two
  1055.  successive  logins,  then they will lose the earlier messages sent to
  1056.  them.   Another  consideration  is many users like to review old Mail
  1057.  when   engaged  in  an  in-depth  private  conversation.   Therefore,
  1058.  setting  MAIL-SLOTS  to  a  low  value  may  not  be  the  attractive
  1059.  alternative  it  first seems.  However, it should go without saying a
  1060.  high  MAIL-SLOTS  value  may  eat up more room than necessary on your
  1061.  drives.   The  section  on  `#LOGSIZE' will give an exact formula for
  1062.  how much space your log will take up.  
  1063. 6.37. #MESSAGEK        
  1064.  
  1065.       MESSAGEK defines  how  much  disk space you wish to allocate for
  1066.  messages  on  your  installation.  Because messages can vary in size,
  1067.  there  is  no  way  to  define how many messages you can have in your
  1068.  system,  or  how fast they turnover.  All the messages in your system
  1069.  will  reside  in CTDLMSG.SYS, and thus the number of messages in your
  1070.  system  at  any given moment will depend totally on the length of the
  1071.  messages  being  entered into the system by your users.  The turnover
  1072.  rate of your messages will depend on how busy your system is.  
  1073.  
  1074.       For example,  if  you  reserve 600K for messages, you would have
  1075.  an  approximate  1200  messages(messages  can  get  as  large  a 7500
  1076.  characters  so  if you have verbose users, this could be as low as 80
  1077.  messages  if they were all to the limit, a good conservative estimate
  1078.  is  512 characters which gives 1200 messages).  If you get 25 callers
  1079.  a  day and each posted 4 messages, you would have a turnover of about
  1080.  12  days.   If  you  networking and get 25 messages a day in 4 rooms,
  1081.  plus  these  callers,  you  have  a  6  day turnover.  The higher the
  1082.  volume,  the quicker the turnover.  When the messages turnover, older
  1083.  message  space  gets  reused  which means older messages are deleted.
  1084.  Shared rooms can have a very high volume.  
  1085.  
  1086.       The sysop  of an installation should also keep in mind that very
  1087.  large  systems,  with  many  new messages, can be intimidating to new
  1088.  users,  so  large  message  spaces should be approached with caution.
  1089.  Remember,  there  is  a  utility(`Expand')  for expanding the message
  1090.  base,  but not for shrinking it.  The only method available to shrink
  1091.  the  message  base  is to delete the existing one and then reset this
  1092.  value  to a smaller amount.  You will lose all the messages(including
  1093.  mail) if you do this.  
  1094.  
  1095.       This is  a  numerical  value  which you specify in 'K', which is
  1096.  actually  1024  bytes/K.   So, for example, to specify a 250K message
  1097.  file 
  1098.  
  1099.       #MESSAGEK 250               -- 250K message base 
  1100.  
  1101.       The above parameter will require 250 Kbytes of disk space.  
  1102. 6.38. #SCAN-NET-MESSAGES        
  1103.  
  1104.       This parameter  tells  Citadel  that  the messages recieved over
  1105.  the  network  should  be  scanned against the file `BADWORDS.SYS' and
  1106.  any matches should cause the offending message to be discarded.  
  1107. 7. Utilities        
  1108. 8. Installation        
  1109. 9. C86Net        
  1110. 10. BBS List       
  1111. 11. Citadel        
  1112. 12. Files        
  1113.  
  1114.       This section  details  the  various  files  that  exist  in  the
  1115.  Citadel  BBS  system.   Most of these files are maintained by the BBS
  1116.  software  and  you  only  need to know a general idea of why they are
  1117.  there  and  how  big  they will be.  Some have particular formats and
  1118.  must be maintained by the Sysop. The files are: 
  1119.  
  1120.       `debug.sys' - System debug information 
  1121.  
  1122.       `crash.sys' - System failure message 
  1123. 12.1. debug.sys        
  1124.  
  1125.       This file  is only generated if the `#AuditArea' is defined.  It
  1126.  will  be  generated  only  if  the debug sysop option is turned on or
  1127.  there  is  a  serious error or problem and the system needs to report
  1128.  information.   Most of the entries in this file are also displayed on
  1129.  the  console.   This  is  a  log that should be examined for problems
  1130.  that  could  occur  in  your setup.  Generally, if you have a problem
  1131.  and  want someone to assist you, it would be a good idea to make this
  1132.  file  available(in  other  words don't delete until your sure it wont
  1133.  be needed).  
  1134. 12.2. crash.sys        
  1135.  
  1136.       This file  usually  contains only a single error message.  It is
  1137.  used  to  display  information  about  a  failure  while  the BBS was
  1138.  initializing  and  did not have the screen and windows open to report
  1139.  the  problem.   This  file  will occur in the current directory which
  1140.  might  not  be  `#HOMEAREA',  since  the  BBS is going to stop itself
  1141.  immediately.  
  1142. 13. #ROOMAREA        
  1143.  
  1144.       This parameter specifies the location many files.  
  1145.  
  1146.  
  1147.       #ROOMAREA "cit:room"          -- another general system dir 
  1148.  
  1149.  
  1150.       This directory  contains  many files which are very important to
  1151.  the  basic  operation  of  Citadel.   This  may  seem overwhelming at
  1152.  first,  and  you  need to know what these files are to understand how
  1153.  to  fix  problems that might occur later.  Much of these files relate
  1154.  to  the  options  you  select  on  your  Citadel with `CONFG'.  These
  1155.  affect  networking, user account creation, what external programs you
  1156.  can  run  and many other Citadel options.  For the most part, you can
  1157.  start  up  a  BBS  without  knowing  anything  about these files, but
  1158.  eventually  if  you  run  into problems, these items are a major help
  1159.  with most of them.  
  1160.  
  1161.  
  1162.       `aliases.sys'    `badnames.sys'  `badpasswords.sys' 
  1163.  
  1164.       `badpeople.sys'  `badwords.sys'  `citadoor.sys' 
  1165.  
  1166.       `ctdlarch.sys'   `ctdldir.sys'   `ctdlfwd.sys' 
  1167.  
  1168.       `ctdlinfo.sys'   `ctdlmodr.sys'  `ctdlprot.sys' 
  1169.  
  1170.       `ctdlroom.sys'   `DExxx.SYS'     `results.sys' 
  1171.  
  1172.  
  1173.       Some of  these  files  are  maintained by Citadel itself and you
  1174.  need  not  do  anything  with the files at all.  The only reason they
  1175.  are  mentioned  here  is  to  prevent confusion and to document their
  1176.  ultimate purpose in the life of your BBS.  
  1177. 13.1. ALIASES.SYS        
  1178.  
  1179.       This file  is  used  to  alias  the  name  of a BBS with another
  1180.  name.   This  serves  the purpose of clarifying what a user thinks is
  1181.  the  name  of  a BBS.  For example, in the typical discussions on BBS
  1182.  issues,  people  refer  to  "C-86  Test  System" using "Test System".
  1183.  This  is  common  enough  that  a  User  might  try  to  send mail to
  1184.  "Sysop@Test  System"  only to find that the BBS does not exist.  When
  1185.  you  have two names that seem equally applicable for some system, you
  1186.  can  make  an  entry  in the ALIASES.SYS file.  The format is one per
  1187.  line and is: 
  1188.  
  1189.       <alias> <realname> 
  1190.  
  1191.       The <alias>  and  <realname>  are quoted strings so "Amiga Zone"
  1192.  and  "The  Amiga  Zone"  would  be  good  entries  for  an  alias and
  1193.  realname.  The two are separated by a single space.  
  1194. 13.2. badnames.sys        
  1195.  
  1196.       This file  is  optional.   The  Sysop  may create it if desired.
  1197.  The  format  is  very  simple.   One name per line.  Each name in the
  1198.  file  will  be checked against any new account name and the name will
  1199.  be  rejected  if a match occurs.  This file is a list of invalid user
  1200.  names.   If  it  is  not  present, Citadel will not complain and will
  1201.  accept any new name.  
  1202. 13.3. badpasswords.sys        
  1203.  
  1204.       This file  is  optional.   The  Sysop  may  create  it  if it is
  1205.  desired  that  the  BBS  should  check  each  password to ensure that
  1206.  commonly  used  names  and  easily  guessable passwords are not used.
  1207.  Each  Password  entered  by users will be validated against this list
  1208.  and a match will be rejected.  
  1209. 13.4. badpeople.sys        
  1210.  
  1211.       This file  is  optional.   The  Sysop  may create it if desired.
  1212.  The  format  is  a username and a room name separated by a comma.  If
  1213.  this  file  exists,  each network message will be checked against the
  1214.  list  and  any  matches  will  cause  the message to be discarded(see
  1215.  `badwords.sys'  for  a similar censor mechinism).  It is important to
  1216.  note  here that these messages are *REMOVED* from the network and not
  1217.  sent  on  to other systems that may not want them removed.  At times,
  1218.  when  a  certain  user  gets  out of control, a Sysop may want to use
  1219.  this option.  
  1220. 13.5. badwords.sys        
  1221.  
  1222.       This optional  file  may  be created by the Sysop to control the
  1223.  contents  of  messages.   Each  message may be optionally scanned (if
  1224.  `#SCAN-NET-MESSAGES'  is  in  the  `CTDLCNFG.SYS' file) as it arrives
  1225.  during  a  network  session.   Any  messages  which fail to meet your
  1226.  standards  of  decency  will  be discarded(placed in the file that is
  1227.  called  `DISCARD')  and  a  message  left  for  you in the AIDE room.
  1228.  Usually,  there is little need to actively censor Citadel Users.  The
  1229.  format  of  the  file is simply a list of words or partial words(frog
  1230.  in  the  list  will  reject  froggy, froggie, and frog).  The list of
  1231.  words  starts on the 3rd line of the file and all lines from there to
  1232.  the  end  of  the  file.   The first line is called the "icky" level.
  1233.  This  level  indicates  how  many  times  a  user  may use one of the
  1234.  "forbidden"  words  before  the  system  will  disconnect  them.  The
  1235.  second  line  may  be  blank  if  you dont want the rejected messages
  1236.  saved.   If  non-blank,  It will be the name of the file that Citadel
  1237.  uses  to  save  the text.  Any user kicked off the BBS will get a "B"
  1238.  added to the CALLLOG.SYS entry.  
  1239. 13.6. citadoor.sys        
  1240.  
  1241.       This file  is  created  by the `CONFG' program.  It contains the
  1242.  data needed by the BBS to run any door programs you have setup.  
  1243. 13.7. ctdlarch.s        
  1244.  
  1245.       This file  is  maintained  by  the BBS.  It contains entries for
  1246.  rooms  that  are  archived.   You  should  not  mess  with this file,
  1247.  instead  use the BBS to change how and when a room is archived.  Room
  1248.  archiving  is  just an additional copy of all messages that appear in
  1249.  a  room.  The archive file may have optional formatting parameters in
  1250.  the  name.   %m  will  be replaced by the current month and %y by the
  1251.  last two digits of the year.  
  1252. 13.8. ctdldir.sys        
  1253.  
  1254.       This file  is  maintained  by the BBS.  It contains entries that
  1255.  tell  the  BBS  the  name  of  the  directory that is attached to the
  1256.  room.   You  should  use  the  AIDE commands with the BBS to make any
  1257.  changes needed to this file.  
  1258. 13.9. ctdlfwd.sys        
  1259.  
  1260.       This file  is  maintained  by the BBS.  It contains entries that
  1261.  tell  the  BBS where to forward mail to a particular user.  This data
  1262.  is  maintained by the individual user, you do not need to worry about
  1263.  it.  
  1264. 13.10. ctdlinfo.sys        
  1265.  
  1266.       This file  is  maintained  by  the BBS.  It contains entries for
  1267.  each  room  that  are  the text information on that room.  You should
  1268.  use  the  BBS to change any room information and not directly in this
  1269.  file.  
  1270. 13.11. ctdlmodr.sys        
  1271.  
  1272.       This file  is  maintained  by  the  BBS.  It contains entries to
  1273.  tell  the  BBS  who  is a moderator of a particular room.  You should
  1274.  use the BBS to change any of this information.  
  1275. 13.12. ctdlprot.sys        
  1276.  
  1277.       This file  contains  the  commands  needed to implement external
  1278.  protocols.   The  BBS  will  read  this  file only when it starts up.
  1279.  Each  line in the file contains information about either an upload or
  1280.  download  protocol.   The  BBS  always has X and Y modem(even if they
  1281.  are  really  slow  implementations  of it) internally.  There are two
  1282.  types  of entries.  The first is the "regular" external program entry
  1283.  that  defines  how  to  call  on  a  program  that will implement the
  1284.  protocol.   The  `protocol'  parameters  are  used  with this type of
  1285.  protocol.   Citadel will invoke the program and expect the program to
  1286.  take   care  of  everything  except  the  description(which  will  be
  1287.  prompted    for   afterwards).    The   second   type   is   an   XPR
  1288.  implementation.   Both  of  these  types have the same parameters for
  1289.  the  first  four  parameter,  it  is the fifth parameter that varies.
  1290.  The format is: 
  1291.  
  1292.       <letter> <type> <name> <direction> <fifth parameter> 
  1293.  
  1294.       The <letter>  is  the  protocol  letter that will be used by the
  1295.  BBS  when  a  user enters .R<letter>B for example.  Most people use Z
  1296.  for Zmodem for example.  
  1297.  
  1298.       The <type>  is 1 or M for "regular" external protocols.  1 means
  1299.  only  single  file  transfers, M means batch transfers are supported.
  1300.  It  is suggested that even for a protocol like Zmodem, you only allow
  1301.  uploads  to  be  single  files.  This will prevent files from getting
  1302.  uploaded   without   descriptions.   A  <type>  of  X  or  Y  is  the
  1303.  corresponding  types  for the XPR type.  X is the single and Y is the
  1304.  batch.  
  1305.  
  1306.       The <name>  parameter  is the name the BBS will display when you
  1307.  type the <letter> 
  1308.  
  1309.       The <direction> is U for upload and D for download.  
  1310.  
  1311.       The <fifth  parameter>  is  an  XPR library name if it is an XPR
  1312.  protocol.   It  should  be spelled exactly like the name in the LIBS:
  1313.  directory.   If it is not an XPR protocl, the rest of the line is the
  1314.  command  used  by  the  BBS  to  invoke  the  protocol.   An  example
  1315.  CTDLPROT.SYS file looks like: 
  1316.  
  1317.       Z X Zmodem U xprzmodem.library 
  1318.  
  1319.       Z Y Zmodem D xprzmodem.library 
  1320.  
  1321.       Q M Zmodem U xprd -mcit:xprd.log -s -c -n -q r %g 
  1322.  
  1323.       K M    Kermit    U    xprd    -mcit:xprd.log   -s   -c   -n   -q
  1324.  -lxprkermit.library r %g 
  1325.  
  1326.       This would  only allow downloading with an XPR Zmodem, but allow
  1327.  uploading with two types of Zmodem and a Kermit.  
  1328. 13.13. protocols        
  1329.  
  1330.       When you  have  an external protocol, the command may get rather
  1331.  complex.   The  BBS  must insert the filename(s) on the command line.
  1332.  Citadel  will  scan  the  command  and  locate a "%g", if that is not
  1333.  found   the  end  of  the  command  line  is  used  instead  and  the
  1334.  filename(s) being transfered will be inserted there.  
  1335. 13.14. ctdlroom.sys        
  1336.  
  1337.       This file  is  maintained  by Citadel.  You should not mess with
  1338.  it.   It contains all the information needed to maintain a room.  Use
  1339.  the utilities and Citadel to make any appropriate changes.  
  1340. 13.15. DExxx.SYS        
  1341.  
  1342.       These files  define  external  commands  that  Citadel  may use.
  1343.  There  are  three  lines in the file, each defining what Citadel does
  1344.  to  Test,  Uncompress,  and  Compress files using the "xxx" archiver.
  1345.  The  supported  types are ARC, LHA, LZH, and ZIP.  Line 1 is the test
  1346.  line,  this  is  used  when  a  user uploads a file of the recognized
  1347.  types.   Citadel will test the archive to ensure a good upload.  Line
  1348.  2 is the Uncompress line, Citadel uses this line to allow the 
  1349. 13.16. results.sys        
  1350.  
  1351.       This file  defines  all  the  results  codes your modem returns.
  1352.  Citadel  needs this file to determine the speed, even if the modem is
  1353.  locked  to  one  speed(see  `#LOCK-PORT').   Citadel will use this to
  1354.  properly  compute  the estimated times for file downloads and for the
  1355.  speed  of  the  modem.   The codes are one per line and a sample file
  1356.  would look like: 
  1357.  
  1358.       #RESULT-300 CONNECT 300 
  1359.  
  1360.       #RESULT-1200 CONNECT 1200 
  1361.  
  1362.       #RESULT-2400 CONNECT 2400 
  1363.  
  1364.       #RESULT-2400 CONNECT 2400/ARQ 
  1365.  
  1366.       #RESULT-4800 CONNECT 4800 
  1367.  
  1368.       #RESULT-4800 CONNECT 7200 
  1369.  
  1370.       #RESULT-9600 CONNECT 9600 
  1371.  
  1372.       #RESULT-9600 CONNECT 12000 
  1373.  
  1374.       #RESULT-14400 CONNECT 14400 
  1375.  
  1376.       #RESULT-14400 CONNECT 38400 
  1377.  
  1378.       #RESULT-14400 CONNECT 57600 
  1379.  
  1380.       #NO-DIALTONE NO DIALTONE 
  1381.  
  1382.       #NO-DIALTONE NO CONNECT 
  1383.  
  1384.       #NO-CARRIER NO CARRIER 
  1385.  
  1386.       #OK OK 
  1387.  
  1388.       #NO-CARRIER ERROR 
  1389.  
  1390.       #NO-CARRIER VOICE 
  1391.  
  1392.       #BUSY BUSY 
  1393.  
  1394.       #RING RING 
  1395.  
  1396.       The format  is <code> <modem result code>, the two paramters are
  1397.  separated  by  a space.  Every possible result is not defined so this
  1398.  example  has  multiple  uses of the same <code> for different connect
  1399.  speeds.  
  1400. 13.17. DISCARD        
  1401.  
  1402.       This file  is  the  default  file that will be used for messages
  1403.  that  are  duplicates,  rejected because of decency(`BADWORDS.SYS' or
  1404.  `BADPEOPLE.SYS').   Citadel saves the discards here so you can review
  1405.  them(just incase there is problem).  
  1406. 13.18. CTDLCNFG.SYS        
  1407.  
  1408.       This file  is the basic configuration information for setting up
  1409.  the  BBS.   The  text lines in this file are processed by `CONFG' and
  1410.  the  CTDLTABL.SYS  file is created.  This is the file you should edit
  1411.  to make adjustments to the BBS.  
  1412.  
  1413.  
  1414.